package com.googlecode.imanager.client.bridge;

import com.googlecode.imanager.client.Document;
import com.googlecode.imanager.client.bridge.style.IParentThemeHandler;
import com.googlecode.imanager.client.io.HttpRequest;
import com.googlecode.imanager.client.io.Path;
import com.googlecode.imanager.client.util.Dimension;

/**
 * NOTE: Any bridge implementors of this interface must also 
 *       implements {@link IParentThemeHandler}.
 * 
 * @author wellsantos@wellsantos.com
 * @since 0.01
 */
public interface IApplication extends IComponent {
    
    Dimension getScreenSize();
    
    Path getBasePath();
    
    void httpCall(HttpRequest request);

    void handleError(Throwable e);

    void showErrorDialog(String title, String message, Throwable e);
    
    void showWarningDialog(String title, String message);
    
    void showMessageDialog(String title, String message);
    
    String showInputDialog(String title, String message);
    
    boolean showQuestionDialog(String title, String message);
    
    void add(Document document);
    
    void remove(Document document);
    
}
